#ifndef CRENEAU_H
#define CRENEAU_H

#include"globalheader.h"
#include"groupe.h"
#include"date.h"

class Salle;


class Creneau{

	private:
		const Date datecours_;
        const int heure_;
		Salle* salle_;
        Groupe* Groupe_;
        Module* module_;

		
	public:
		
        Creneau(const Date& datecours, const int& hr, Groupe* grp, Salle* salle, Module* module);
		
		const Date getDate() const;
        int getHeure() const;
		Salle* getSalle();
        Groupe* getGroupe();
        Module* getModule();
		
		bool changerSalle(Salle* salle);
		
		bool operator<(const Creneau& c) const;
		bool operator>(const Creneau& c) const;

        bool operator==(const Creneau& c) const;
};


class ComparatorCreneau
{
    bool operator()(const Creneau& c1, const Creneau& c2);
};

typedef std::set<Creneau*, point_less<Creneau> > enCreTriHeure;
typedef std::set<Creneau*> ensCreneau;

class EnsembleCre
{
    private:
       ensCreneau listCreneau_;

    public:
       EnsembleCre();
       void ajoutCreneau(Creneau* cre);
       void ajoutEnsCreneau(ensCreneau eCre);

       void supprCreneaux(Creneau* cre);

       ensCreneau getEnsembleCre();
};


#endif
